﻿using System;
using System.Linq;

namespace QuanLyKhachSan
{
   public class ThongKeManager
    {
        private static HoaDonDichVuManager hdDichVu = new HoaDonDichVuManager();
        private static HoaDonThuePhongManager hdThuePhong = new HoaDonThuePhongManager();

        public static int TinhDoanhThuTheoThang(int thang)
        {
            int tongTien = 0;
            try{
                //Tinhs tổng tiền hóa đơn dịch vụ
                var hdDv =
                    hdDichVu.Find(
                        hd => hd.NgayThanhToan.Year.Equals(DateTime.Now.Year) && hd.NgayThanhToan.Month.Equals(thang))
                        .Result;
                tongTien += hdDv.Sum(hoaDonDichVu => Convert.ToInt32(hoaDonDichVu.ThanhTien));

                //Tính tỏng tiền hóa đơn thuê phòng
                var hdPhong =
                    hdThuePhong.LayDanhSach()
                        .Result.Where(t => t.NgayLapHD.Value.Year.Equals(DateTime.Now.Year) && t.NgayLapHD.Value.Month.Equals(thang));
                tongTien += hdPhong.Sum(tien => Convert.ToInt32(tien.TongTienThuePhong));
            }
            catch (Exception)
            {
                return 0;
            }
            return tongTien;
        }

        public static int TinhDoanhThuTheoNam(int nam)
        {
            int tongTien = 0;
            try
            {
                //Tinhs tổng tiền hóa đơn dịch vụ
                var hdDv = hdDichVu.Find(hd => hd.NgayThanhToan.Year.Equals(nam)).Result;
                tongTien += hdDv.Sum(hoaDonDichVu => Convert.ToInt32(hoaDonDichVu.ThanhTien));

                //Tính tỏng tiền hóa đơn thuê phòng
                var hdPhong = hdThuePhong.LayDanhSach().Result.Where(t => t.NgayLapHD.Value.Year.Equals(nam));
                tongTien += hdPhong.Sum(tien => Convert.ToInt32(tien.TongTienThuePhong));
            }
            catch (Exception)
            {
                return 0;
            }
            return tongTien;
        }

        public static int TinhDoanhThuTheoQuy(int quy)
        {
            int tongTien = 0;
            try
            {
                for (int i = quy - 2; i <= quy; i++)
                {
                    tongTien += TinhDoanhThuTheoThang(i);
                }
            }
            catch (Exception)
            {
                return 0;
            }
            return tongTien;
        }
    }
}
